From: Jonas Ã…dahl Date: Thu, 9 Jul 2020 07:18:27 +0000 (+0200) Subject: layout: Remove redundant background refresh X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~684^2^2~133 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=95bb194356d6523aa46aafa0aeadf9b37b43415b;p=gnome-shell.git layout: Remove redundant background refresh When using the NVIDIA driver, textures tend to loose their pixels when suspending. In the past we handled this by figuring out when the NVIDIA driver was used, and reload the background whenever we noticed we resumed from suspend. This shouldn't be needed anymore after https://gitlab.gnome.org/GNOME/mutter/merge_requests/600, as it should handle this by listening to video-memory-purged signal. Thus remove our special handling here. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1358 --- diff --git a/js/ui/layout.js b/js/ui/layout.js index 4cd066582..55cefb282 100644 --- a/js/ui/layout.js +++ b/js/ui/layout.js @@ -6,7 +6,6 @@ const Signals = imports.signals; const Background = imports.ui.background; const BackgroundMenu = imports.ui.backgroundMenu; -const LoginManager = imports.misc.loginManager; const DND = imports.ui.dnd; const Main = imports.ui.main; @@ -295,18 +294,6 @@ var LayoutManager = GObject.registerClass({ monitorManager.connect('monitors-changed', this._monitorsChanged.bind(this)); this._monitorsChanged(); - - // NVIDIA drivers don't preserve FBO contents across - // suspend/resume, see - // https://bugzilla.gnome.org/show_bug.cgi?id=739178 - if (Shell.util_need_background_refresh()) { - LoginManager.getLoginManager().connect('prepare-for-sleep', - (lm, suspending) => { - if (suspending) - return; - Meta.Background.refresh_all(); - }); - } } // This is called by Main after everything else is constructed diff --git a/src/shell-util.c b/src/shell-util.c index dd9be51a3..5fe2dfcaf 100644 --- a/src/shell-util.c +++ b/src/shell-util.c @@ -409,34 +409,6 @@ shell_util_create_pixbuf_from_data (const guchar *data, typedef const gchar *(*ShellGLGetString) (GLenum); -static const gchar * -get_gl_vendor (void) -{ - static const gchar *vendor = NULL; - - if (!vendor) - { - ShellGLGetString gl_get_string; - gl_get_string = (ShellGLGetString) cogl_get_proc_address ("glGetString"); - if (gl_get_string) - vendor = gl_get_string (GL_VENDOR); - } - - return vendor; -} - -gboolean -shell_util_need_background_refresh (void) -{ - if (!clutter_check_windowing_backend (CLUTTER_WINDOWING_X11)) - return FALSE; - - if (g_strcmp0 (get_gl_vendor (), "NVIDIA Corporation") == 0) - return TRUE; - - return FALSE; -} - static gboolean canvas_draw_cb (ClutterContent *content, cairo_t *cr, diff --git a/src/shell-util.h b/src/shell-util.h index aa79f4973..00127ca95 100644 --- a/src/shell-util.h +++ b/src/shell-util.h @@ -49,8 +49,6 @@ GdkPixbuf *shell_util_create_pixbuf_from_data (const guchar *data, int height, int rowstride); -gboolean shell_util_need_background_refresh (void); - ClutterContent * shell_util_get_content_for_window_actor (MetaWindowActor *window_actor, MetaRectangle *window_rect);